1
Fundamentos de Coleções Alocadas no Heap
AI034Lesson 8
00:00

A Arquitetura do Crescimento

As coleções do Rust, como Vec<T> e String, não são tipos primitivos; são estruturas definidas em bibliotecas e residem no módulo std módulo. Esta base determina como o Rust organiza os dados por meio do sistema de módulos e gerencia a memória por meio do RAII (Aquisição de Recursos é Inicialização). Enquanto tipos simples vivem na pilha, as coleções utilizam Armazenamento no Heap para crescimento dinâmico, o que significa que sua memória deve ser gerenciada explicitamente por meio do Drop trait.

Resolução de Módulos e Visibilidade

O compilador do Rust mapeia a árvore de módulos começando pelo raiz do crate (src/lib.rs ou src/main.rs). Uma declaração como mod front_of_house; instrui o compilador a procurar por src/front_of_house.rs ou src/front_of_house/mod.rs. Usando pub modificadores e re-exportações (pub use) permite que dados alocados no heap sejam acessados de forma segura por meio de caminhos idiomáticos.

Árvore de Resolução de Arquivossrc/lib.rssrc/front_of_house.rs- hosting.rspub use crate::front_of_house;let list = Vec::new();🦀?Armadilha: conflito entre mod.rs e name.rsdispara erro de compilador (Página 183)

Assim que o escopo de um módulo termina, o Drop implementação reivindica automaticamente a memória do heap: $$Memory_{reclaimed} = \sum Drop(Elements)$$.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>